home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 8 / FM Towns Free Software Collection 8.iso / t_os / kouza / sample.gtx < prev    next >
Text File  |  1994-06-01  |  7KB  |  281 lines

  1.     ===============================================================
  2.  
  3.             「講座野郎」 サンプルデータ
  4.  
  5.     ===============================================================
  6.  
  7.  
  8.    ● はじめに
  9.  
  10.       このツールは、テキスト表示中に図なども表示しちゃおうという
  11.      ツールです。
  12.  
  13.    ● さっそく
  14.  
  15.       では、左クリックしてみてください。キーボードの絵がでたら、
  16.      それが正常な動作です(^^;
  17.  
  18.       では、さっきの目次の所に戻りましょう。右クリックしてくださ
  19.      い。
  20.  
  21.    ● スクロールのさせかた
  22.  
  23.       私の尊敬するHONESEN 氏という方が、J-Typeというとっても便利
  24.      なツールを提供してくださっているのはもうみなさんご存じですよ
  25.      ね。
  26.  
  27.       このツールは一見したところ、あのJ-Typeとそっくりですが、ス
  28.      クロールのさせかたがちょっと変則的なんです。
  29.  
  30.       マウスを向こうにやったり、手前にひいたりしてみて下さい。
  31.       それだけでスクロールするんです。妙な仕様ですみません(^^;
  32.  
  33.       左クリックしてみましょうか。TOOLS のロゴがあちこちにでます。
  34.      このように表示されるグラフィックファイルは、16色のものしか使
  35.      えません。また、目次の一項目について、10枚までの絵が一度に
  36.      表示できます。
  37.  
  38.       このグラフィックを消すには、また左クリックして下さい。
  39.  
  40.       このように、左クリックで、好きな時に絵をだしたり消したりで
  41.      きます。
  42.  
  43.       スクロールは、うまい方法を思いつかなかったので、J-Typeのよ
  44.      うにさらさらっとはできてません。CDプレーヤーもついていないの
  45.      で、サイドワークのものを使ってくださいね(^^;
  46.  
  47.       これより下の部分には、スクロールの実験の為だけに、全然関係
  48.      ないものをいれておきました。このツールの使いにくさを試してみ
  49.      てください(^_^;;
  50.  
  51.    ---------- スクロール 練習用スペース ---------
  52.  
  53.     int tif_set( int page )
  54.     {
  55.         int i ;
  56.         char s[256] ;
  57.  
  58.         for( i=0; i<TIFMAX; i++ )
  59.         {
  60.             cnum = i ;
  61.             strcpy( s, pagedata[page].tif[i] ) ;
  62.             if( tifflg[page][i] == 1 )
  63.                 put_tif( s, 0, 0 ) ;
  64.         }
  65.         return NOERR ;
  66.     }
  67.     
  68.     int mainloop( int page, int flg, int gtx )
  69.     {
  70.         int line ;
  71.         int mosch, mosx, mosy, speed = 0, start, end ;
  72.         
  73.         MOS_horizon( 0, 639 ) ;
  74.         MOS_vertical( 0, 479 ) ;
  75.         
  76.         if( gtx == OFF )
  77.         {
  78.             start = 0 ;
  79.             end = lsize-1 ;
  80.         }
  81.         else
  82.         {
  83.             start = pagedata[page].start ;
  84.             end = pagedata[page].end ;
  85.         }
  86.         
  87.         if( flg == OFF )
  88.         {
  89.             MOS_setpos( 320, 240 ) ;
  90.             vline = 31 ;
  91.             cline = 31 + start ;
  92.         
  93.             for( line=start; line<=start+30 && line<=end ; line++ )
  94.                 putline( mark[line], line-start ) ;
  95.         }
  96.         do
  97.         {
  98.             MOS_rdpos(&mosch,&mosx,&mosy) ;
  99.             speed = ( mosy - 240 ) / 10 ;
  100.             if( speed<-1 && cline>(31+start) && (end-start) > 30 )
  101.             {
  102.                 cline--;
  103.                 back_scr( cline-31, -speed-1, vline ) ;
  104.                 vline--;
  105.                 if( vline == -1 )
  106.                     vline = 31 ;
  107.             }
  108.             if( speed > 1 && cline < end+2 && (end-start) > 30 )
  109.             {
  110.                 forward_scr( cline, speed-1, vline ) ;
  111.                 cline++ ;
  112.                 vline++ ;
  113.                 if( vline == 32 )
  114.                     vline = 0 ;
  115.             }
  116.         } while( mosch == 0 ) ;
  117.         mospause() ;
  118.          
  119.         return mosch ;
  120.     }
  121.     
  122.     int forward_scr( int cline, int speed, int vline )
  123.     {
  124.         int i ;
  125.         
  126.         if( vram == 512 )
  127.             vram = 0 ;
  128.         for( i=vram+1 ; i<=vram+16; i++ )
  129.         {
  130.             vram_offset( 21, i*128 ) ;
  131.             if( i%speed == 0 )
  132.                 wait( 1 ) ;
  133.         }
  134.         vram += 16 ;
  135.         if( vram == 512 )
  136.             vram = 0 ;
  137.         
  138.         putline( mark[cline], vline ) ;
  139.         
  140.         return NOERR ;
  141.     }
  142.     
  143.     int back_scr( int cline, int speed, int vline )
  144.     {
  145.         int i ;
  146.         
  147.         putline( mark[cline], vline ) ;
  148.     
  149.         if( vram == 0 )
  150.             vram = 512 ;
  151.         for( i=vram-1 ; i>=vram-16; i-- )
  152.         {
  153.             vram_offset( 21, i*128 ) ;
  154.             if( i%speed == 0 )
  155.                 wait( 1 ) ;
  156.         }
  157.         vram -= 16 ;
  158.         if( vram == 0 )
  159.             vram = 512 ;
  160.         
  161.         return NOERR ;
  162.     }
  163.  
  164.     int putline( char *adr, int line )
  165.     {
  166.         char buf1[ LINESIZE+1 ], buf2[ LINESIZE+1 ] ;
  167.         int i, j, c = 0, flg = 0 ;
  168.         
  169.         for( i=0; i<LINESIZE; i++ )
  170.             buf2[i] = ' ' ;
  171.         buf2[LINESIZE] = '\0' ;
  172.         strncpy( buf1, adr, LINESIZE ) ;
  173.         buf1[LINESIZE] = '\0' ;
  174.         
  175.         for( i=0; i<LINESIZE; i++ )
  176.         {
  177.             switch( buf1[i] )
  178.             {
  179.                 case '\t' :
  180.                         for( j=0; j<tabsize; j++ )
  181.                         {
  182.                             buf2[c] = ' ' ;
  183.                             c++ ;
  184.                         }
  185.                         break ;
  186.                 case 0xd :
  187.                         if( buf1[i+1] == 0xa )
  188.                         {
  189.                             i++ ;
  190.                             flg = 1 ;
  191.                         }
  192.                         else
  193.                             buf2[c] = buf1[i] ;
  194.                         c++ ;
  195.                         break ;
  196.                 case 0x1a:
  197.                         c++ ;
  198.                         flg = 1 ;
  199.                         break ;
  200.                 default  :
  201.                         buf2[c] = buf1[i] ;
  202.                         c++ ;
  203.                         break ;
  204.             }
  205.             if( flg == 1 )
  206.                 break ;
  207.         }
  208.         
  209.         wrtstr( buf2, 0x40000, 0, line*16, White, Black, 16 ) ;
  210.         return NOERR ;
  211.     }
  212.  
  213.    ---------- 練習用スペース 終わり ----------
  214.  
  215.    ● おわりかた
  216.  
  217.       そろそろ、このツールが分かっていただけたでしょうか。メモリ
  218.      が少ないTOWNS では、大きいの絵を一度に表示させようとすると、
  219.      「メモリが足りません」のエラーとなるかもしれませんので、まぁ
  220.      ほどほどの絵をだすといいでしょう。
  221.  
  222.       オフラインミーティングの時の場所の地図案内に、技術屋さんの
  223.      間での図入りデータのやり取りに、パソコンサークルの講座用に、
  224.      いろいろ使ってみてください。
  225.  
  226.       肝心の、このツールの終了のさせかたですが、右クリックで目次
  227.      表示に戻ったら、そこでまた右クリックしてください。そうすると、
  228.      TOWNS-Menuに戻ります。
  229.  
  230.       このツールの変則的なスクロールを練習される方は、PAGE1 の項
  231.      目をクリックしてください。
  232.  
  233.       詳しいことは、KOUZA.doc を読んでもらえればわかるんではなか
  234.      ろうかと思います。
  235.  
  236.       TOOLSというTOWNS サークルは、有名じゃない庶民派サーク
  237.      ルですが、名前と違って、ツールばかり作っているような集団では
  238.      なく、のんびりいろんな話をやっているサークルです。
  239.  
  240.       そののんびりサークルの会長ごんざが、このへんてこなツールを
  241.      作りました。今後ともよろしくお願いします。
  242.  
  243.                           TOOLS 1994
  244.  
  245.  
  246.  
  247. #DATA_START
  248.     main
  249.     {
  250.         name = "講座野郎V1.0の簡易解説書" ;
  251.     }
  252.  
  253.     page : 0
  254.     {
  255.         start = 1 ;
  256.         end = 20 ;
  257.         name = "はじめに見てね" ;
  258.         tif : 0 = "key1.tif", 100, 50 ;
  259.     }
  260.  
  261.     page : 1
  262.     {
  263.         start = 21 ;
  264.         end = 214 ;
  265.         name = "スクロールのさせかた" ;
  266.         tif : 0 = "tools.tif",   0,   0 ;
  267.         tif : 1 = "tools.tif", 400,  50 ;
  268.         tif : 2 = "tools.tif",  20, 300 ;
  269.     }
  270.  
  271.     page : 2
  272.     {
  273.         start = 215 ;
  274.         end = 244 ;
  275.         name = "最後に" ;
  276.     }
  277. #DATA_END
  278.  
  279.  
  280.  
  281.